#ifndef PHYSICS2D_H
#define PHYSICS2D_H

#include "CVect2d.h"
#include "math.h"

struct TBall {  // apskiritimas
    CVect2d pos, speed;
    double radius;
    float r, g, b;  // spalva
    bool inHole;    // ar įmušytas?
};

struct TBox {   // AABB stačiakampis
    CVect2d pos, hsize; // pusė pločio ir auščio
    float r, g, b;  // spalva
};

struct TArrow {     // rodiklytė vėktoriams piešti
    CVect2d pos, dir;
    float r, g, b;
};

struct TTriangle {  // trikampis
    CVect2d p[3];    // viršūnės
    float r, g, b;  // spalva
};

// tikrina ar du kamuoliai susiduria
bool elasticCollision( TBall &a, TBall &b );
// tikrina ar susiduria apskritimas su AABB statčiakampiu
bool collide( const TBall &a, const TBox &b );
// tikrina ar susiduria apskritimas su trikampiu
bool collide( TBall &a, const TTriangle &b );
// tikrina ar apskritimo centras yra kitame apskritime
bool inHole( const TBall &a, const TBall &b );


// susidurimo metodai
bool pushOut( TBall &a, const TBall &b );
bool pushOut( TBall &a, const TBox &b );



#endif // PHYSICS2D_H
